﻿Imports System.Windows.Forms
Imports Chiroredactie2007.My.Resources.Resources

Public Class HuisstijlVenster

    Private fonts As List(Of String)
    Private titelfonts As String()
    Private tekstfonts As String()

    Private Sub HuisstijlVenster_Load(sender As Object, e As EventArgs) Handles Me.Load
        If fonts Is Nothing Then
            fonts = New List(Of String)

            For i As Int16 = 1 To Globals.ThisAddIn.Application.FontNames.Count
                fonts.Add(Globals.ThisAddIn.Application.FontNames(i).ToString())
            Next

            fonts.Sort()
            titelfonts = Array.CreateInstance(GetType(String), fonts.Count)
            tekstfonts = Array.CreateInstance(GetType(String), fonts.Count)

            fonts.CopyTo(titelfonts)
            fonts.CopyTo(tekstfonts)
        End If

        TekstComboBox.DataSource = tekstfonts
        TitelComboBox.DataSource = titelfonts

        If My.Settings.DefaultTitellettertype <> String.Empty Then
            Try
                TitelComboBox.SelectedText = My.Settings.DefaultTitellettertype
                TitelComboBox.Text = My.Settings.DefaultTitellettertype
            Catch ex As Exception
                ' Doe maar verder
            End Try
        End If

        If My.Settings.DefaultTekstlettertype <> String.Empty Then
            Try
                TekstComboBox.SelectedText = My.Settings.DefaultTekstlettertype
                TekstComboBox.Text = My.Settings.DefaultTekstlettertype
            Catch ex As Exception
                ' Doe maar verder
            End Try
        End If

        TekstgrootteTextBox.Text = My.Settings.DefaultTekstlettergrootte.ToString()
        TitelgrootteTextBox.Text = My.Settings.DefaultTitellettergrootte.ToString()
    End Sub

    Private Sub UitvoerenButton_Click(sender As System.Object, e As EventArgs) Handles UitvoerenButton.Click
        ' Toon navigatievenster, zodat we kunnen controleren of de titels de juiste opmaak kregen
        Globals.ThisAddIn.Application.ActiveWindow.DocumentMap = True

        ' Validatie
        Dim tekstgrootte As Int32
        Dim titelgrootte As Int32

        If tekstfonts.Contains(TekstComboBox.Text) = False OrElse titelfonts.Contains(TitelComboBox.Text) = False Then
            MessageBox.Show("Fout: ongeldig lettertype geselecteerd", FoutString, MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End If

        If Int32.TryParse(TekstgrootteTextBox.Text, tekstgrootte) = False Then
            MessageBox.Show("Fout: lettergrootte voor standaardlettertype is geen geldig getal", FoutString, MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End If

        If Int32.TryParse(TitelgrootteTextBox.Text, titelgrootte) = False Then
            MessageBox.Show("Fout: lettergrootte voor titellettertype is geen geldig getal", FoutString, MessageBoxButtons.OK, MessageBoxIcon.Error)
            Exit Sub
        End If

        Cursor.Current = Cursors.WaitCursor

        ' Verwerking
        Dim opmaak As New Documentopmaak

        ' Lay-outaanwijzingen moet gebeuren voor LettertypesInstellen, anders wordt alle rode tekst 'Standaard'.
        If BevatLayOutAanwijzingenCheckBox.Checked Then
            opmaak.LettertypeLayOutAanwijzingenInstellen(TekstComboBox.Text, tekstgrootte)
        End If

        opmaak.LettertypesInstellen(TekstComboBox.Text, TitelComboBox.Text, tekstgrootte, titelgrootte)

        Cursor.Current = Cursors.Default
        MessageBox.Show("Opmaak ingesteld!")
        Close()
    End Sub

End Class